package com.mallcai.bigdata.ladon.service.system;

import com.mallcai.bigdata.ladon.dpl.entity.system.Resource;
import com.mallcai.bigdata.ladon.dpl.entity.system.RoleRlResource;
import com.mallcai.bigdata.ladon.vo.system.TreeNodeVo;

import java.util.List;
import java.util.Map;

/**
 * Created by oneape<oneape15@163.com>
 * Created 2019-06-21 19:56.
 * Modify:
 */
public interface IResService {

    /**
     * 根据条件查询资源列表
     *
     * @param params Map
     * @return List
     */
    List<Resource> getByParams(Map<String, Object> params);

    /**
     * 获取子节点列表
     *
     * @param parentIds List
     * @return List
     */
    List<Resource> getChildren(List<Long> parentIds);

    /**
     * 获取资源树
     *
     * @param needRoot int 是否需要根节点
     * @return List
     */
    List<TreeNodeVo> getResTree(boolean needRoot);

    /**
     * 获取所有资源
     *
     * @return List
     */
    List<Resource> getAllResource();

    /**
     * 添加资源
     *
     * @param res Resource
     * @return int
     */
    int addResource(Resource res);

    /**
     * 修改资源
     *
     * @param res Resource
     * @return int
     */
    int updateResource(Resource res);

    /**
     * 删除资源
     *
     * @param res Resource
     * @return int
     */
    int deleteResource(Resource res);

    /**
     * 根据用户Id获取拥有的权限列表
     *
     * @param userId Long 用户Id
     * @return List
     */
    List<String> getAuthCodeByUserId(Long userId);

    /**
     * 根据用户获取拥有的操作权限列表
     *
     * @param userId Long
     * @return List
     */
    List<RoleRlResource> getOptPermissionByUserId(Long userId);
}
